CDC->LineTo之类的函数都会触发WM_PAINT消息吗?

来源:百度知道 编辑:UC知道 时间:2024/06/08 07:18:31
CDC->LineTo,Ellipse之类的函数都会触发WM_PAINT消息吗?
问题是不管是绘图还是重绘,你都需要WM_PAINT消息,才能物理的显示出来

你执行CDC-LineTo.你的意思是说不用WM_PAINT,它能绘图出来?

我是说你执行了LineTo,你不需要手工添加invalidateRect函数,系统仍然会画出物理图.这条语句肯定会使系统发送WM_PAINT消息到客户窗口区.

为什么不测试一下呢?
我们可以添加
OnLButtonDown()和OnLButtonUp()
画一条直线,
然后,设置一个计数器 int count;用以区分是否为刚创建时有WM_PAINT消息产生。
添加OnPaint()消息映射,弹出消息对话框,这就可以知道了。
结果证明不明产生WM_PAINT消息。

都不会!

改变窗口大小,窗口被遮挡或者去除遮挡时,会触发WM_PAINT消息。
或者人为发送的WM_PAINT消息。
如调用以下函数时:
Invalidate指定整个客户区无效;
InvalidateRect指定某个矩形无效;
InvalidateRgn指定某个区域无效。

补充:
当然确定,绘图和重绘是两个概念。